package com.cdu.guoxinan.www.smartcom.domian.pojo;

import javax.validation.constraints.NotNull;

import java.io.Serializable;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.ToString;

/**
* 费用管理表
*  fee
*/
@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class Fee implements Serializable {

    /**
    * 费用ID
    */
    @NotNull(message="[费用ID]不能为空")
    @ApiModelProperty("费用ID")
    private Long feeId;
    /**
    * 费用类型（1物业费 2车位费等）
    */
    @NotNull(message="[费用类型（1物业费 2车位费等）]不能为空")
    @ApiModelProperty("费用类型（1物业费 2车位费 3水费 4.电费 5. 煤气费等）")
    private Integer feeType;
    /**
    * 金额
    */
    @NotNull(message="[金额]不能为空")
    @ApiModelProperty("金额")
    private BigDecimal amount;
    /**
    * 缴费截止日期
    */
    @NotNull(message="[缴费截止日期]不能为空")
    @ApiModelProperty("缴费截止日期")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date dueDate;
    /**
    * 居民ID
    */
    @NotNull(message="[居民ID]不能为空")
    @ApiModelProperty("居民ID")
    private Long residentId;
    /**
    * 状态（1已缴 2未缴）
    */
    @NotNull(message="[状态（1已缴 2未缴 ）]不能为空")
    @ApiModelProperty("状态（1已缴 2未缴）")
    private Integer status;
    /**
    * 缴纳时间
    */
    @ApiModelProperty("缴纳时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date paidAt;
    /**
    * 缴费方式（1微信 2支付宝等）
    */
    @ApiModelProperty("缴费方式（1微信 2支付宝等）")
    private Integer paymentMethod;
    /**
    * 创建时间
    */
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private Date createTime;

    /**
    * 删除标志（0未删除 1已删除）
    */
    @NotNull(message="[删除标志（0未删除 1已删除）]默认为0")
    @ApiModelProperty("删除标志（0未删除 1已删除）")
    private int del;

}
